//////////////////////////////////////////////////////////////////////////////////
//	Copyright 2011 by Yosef Grabivker, ryuho@homenetworksoft.com
//
//   Licensed under the Apache License, Version 2.0 (the "License");
//   you may not use this file except in compliance with the License.
//   You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
//   Unless required by applicable law or agreed to in writing, software
//   distributed under the License is distributed on an "AS IS" BASIS,
//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//   See the License for the specific language governing permissions and
//   limitations under the License.
//

#ifndef __WIRELESS_WLAN_PROC_INT_HW_YG_H__
#define __WIRELESS_WLAN_PROC_INT_HW_YG_H__

#include "wirelesshw.h"

class CWirelessWLANProcIntHW: public CWirelessHW
{
public:
								CWirelessWLANProcIntHW(CLinkGuard& link);
	virtual						~CWirelessWLANProcIntHW(void);
	
	virtual std::string			GetStats(std::string& strRawData);
	virtual std::string			GetCaps();
	virtual void				SetUp(const std::string& strModemSettings) {}
	virtual bool				ExecuteXML(const std::string& strModemSettings) { return false; }

private:
	unsigned char				GetStationActiveRate(unsigned short rateAcx);
};

/*
 * New Rate definitions 
 */
#define ACX_RATE_1			0x0001
#define ACX_RATE_2			0x0002
#define ACX_RATE_5_5		0x0004
#define ACX_RATE_6			0x0008
#define ACX_RATE_9			0x0010
#define ACX_RATE_11			0x0020
#define ACX_RATE_12			0x0040
#define ACX_RATE_18			0x0080
#define ACX_RATE_22			0x0100
#define ACX_RATE_24			0x0200
#define ACX_RATE_36			0x0400
#define ACX_RATE_48			0x0800
#define ACX_RATE_54			0x1000
#define ACX_RATE_PBCC		0x4000
#define ACX_RATE_PREAMBLE	0x8000
#define ACX_RATE_MASK		0x1FFF

#define DOT11_RATE_1                                            2
#define DOT11_RATE_2                                            4
#define DOT11_RATE_5_5                                          11
#define DOT11_RATE_6                                            12
#define DOT11_RATE_9                                            18
#define DOT11_RATE_11                                           22
#define DOT11_RATE_12                                           24
#define DOT11_RATE_18                                           36
#define DOT11_RATE_22                                           44
#define DOT11_RATE_24                                           48
#define DOT11_RATE_33                                           66
#define DOT11_RATE_36                                           72
#define DOT11_RATE_48                                           96
#define DOT11_RATE_54                                           108



#endif //__WIRELESS_WLAN_PROC_INT_HW_YG_H__